package com.zxy.feignclient;

import com.zxy.feignclient.factory.ProductClientFactory;
import com.zxy.feignclient.impl.ProductClientImpl;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

/*
 * 这里除了可以使用fallback = ProductClientImpl.class这个之外
 * 还可以自定义一个Factory类，实现FallbackFactory接口
 * 接口中传入当前泛型 实现泛型中的方法调用来完成服务熔断
 * */
@FeignClient(value = "product-client",
        fallback = ProductClientImpl.class
//        fallbackFactory = ProductClientFactory.class
)
public interface ProductClient {

    @GetMapping("/product")
    String product(@RequestParam("id") Integer id);
}
